#include <list>
#include <vector>

class Card
{
public:
	enum Suit
	{
		Clubs=0,
		Diamonds,
		Hearts,
		Spades
	};

	enum Rank
	{
		Ace=1,
		Two,
		Three,
		Four,
		Five,
		Six,
		Seven,
		Eight,
		Nine,
		Ten,
		Jack,
		Queen,
		King,
		JokerA,
		JokerB
	};

	Card(Rank r, Suit s);

	bool operator==(const Card& rhs);

	Rank GetRank() const;
	Suit GetSuit() const;

	int Value() const;

private:
	Rank rank;
	Suit suit;
};

class Deck
{
public:
	Deck();

	void Move(Card card, int amount);

	std::list<int> GetValues() const;
	void Triple_Cut();
	void Count_Cut();
	char Output_Letter();
	void Shuffle();
private:
	std::list<Card> cards;
};
